As Internet is widely used, the need of transmitting audio-video signals over Internet is increasing. Radio, television, and other media are moved to online to distribute the audio-video programs over the Internet. However, when the audio-video programs are stored, the sizes of audio-video files are often huge. Under the circumstance of still limited network bandwidth, spending tens of minutes or even longer waiting for transferring an audio or video file is not a desired user experience.
The introduction of streaming media technology eases the burden of transferring audio-video contents over Internet to a certain extent.
Using the streaming media technology to transfer audio, video, or animation contents from a server to a user computer may be continuous and uninterrupted. The user may not need to wait for the completion of downloading an entire file. After a few seconds or over ten seconds of delay at the beginning, the user may view the content. When the audio-video content is played on the user's device, the remaining portion of the file may continue to be downloaded from the server.
Currently, the streaming media technology is widely used in on-demand services. That is, the audio-video file has already been stored on a server. While the content of the file is played, a user may drag to play at any position of the content of the file. To support the drag-to-play function, the streaming media file needs to be pre-processed. For example, the streaming media file may be marked with streaming timestamps. Finding a position in the content file may be conducted through locating a streaming timestamp in the streaming content file. Alternatively, the streaming media file may be sliced by key image frames such that user may find a position more precisely in the streaming content file. The server may rapidly jump to the requested position in response to the user's request.
However, the described pre-processing methods of the streaming media files may not be suitable for live streaming. When viewing live streaming images, user may not be able to perform the drag-to-play operation on the live streaming content. The user's device may receive the live streaming content in real-time from a source terminal or a server, and may self-adjust according to the status of the user's player client.
As we all know, the real-time requirement for playing audio-video content is high in the live streaming. How to process media files to provide desired viewing experience to the client may be a problem that requires a solution urgently.